Safe Virtual Execution Using Software Dynamic Translation
نویسندگان
چکیده
Safe virtual execution (SVE) allows a host computer system to reduce the risks associated with running untrusted programs. SVE prevents untrusted programs from directly accessing system resources, thereby giving the host the ability to control how individual resources may be used. SVE is used in a variety of safety-conscious software systems, including the Java Virtual Machine (JVM), software fault isolation (SFI), system call interposition layers, and execution monitors. While SVE is the conceptual foundation for these systems, each uses a different implementation technology. The lack of a unifying framework for building SVE systems results in a variety of problems: many useful SVE systems are not portable and therefore are usable only on a limited number of platforms; code reuse among different SVE systems is often difficult or impossible ; and building SVE systems from scratch can be both time consuming and error prone. To address these concerns, we have developed a portable , extensible framework for constructing SVE systems. Our framework, called Strata, is based on software dynamic translation (SDT), a technique for modifying binary programs as they execute. Strata is designed to be ported easily to new platforms and to date has been targeted to SPARC/Solaris, x86/Linux, and MIPS/IRIX. This portability ensures that SVE applications implemented in Strata are available to a wide variety of host systems. Strata also affords the opportunity for code reuse among different SVE applications by establishing a common implementation framework. Strata implements a basic safe virtual execution engine using SDT. The base functionality supplied by this engine is easily extended to implement specific SVE systems. In this paper we describe the organization of Strata and demonstrate its extension by building two SVE systems: system call interposition and stack-smashing prevention. To illustrate the use of the system call interposition extensions, the paper presents implementations of several useful security policies.
منابع مشابه
Live Software Development with Dynamic Classes
Software modification at run-time can facilitate rapid prototyping, streamline development and debugging, and enable interactive educational programming environments. However, supporting live fine-grain program modification while reaping the benefits of a compiled type-safe language is a challenging problem. This paper presents fine-grain dynamic classes that support live object-oriented softwa...
متن کاملEfficient Binary Translation In Co-Designed Virtual Machines
There is an inherent tension between two basic aspects of computer design: standardized ISAs that allow portable (and enduring) software to be used in a wide variety of systems, and innovative ISAs that can take best advantage of ever-evolving silicon technologies. This tension originates from the ultimate objective of computer architects: efficient computer system designs that (1) support expa...
متن کاملSoftware Agent Technology for Supporting Ad Hoc Virtual Enterprises
This chapter introduces a new idea of using software agents for supporting ad hoc virtual enterprises and similar forms of temporal businessto-business collaboration. It seems that current information and telecommunication technologies, based on information interchange and local data processing, are not flexible enough to deal with modern business requirements, especially dynamic and temporal b...
متن کاملKBT: Operating System Kernel Level Binary Translation System
with the diversification of hardware platforms, software compatibility issue has become increasingly prominent. Virtual machine with dynamic binary translation system is the key technology to solve this problem. This paper designs an operating system kernel level virtual machine with binary translation systems (KBT) which is embedded into kernel space as a kernel module. KBT reduces the number ...
متن کاملStrata: A Software Dynamic Translation Infrastructure
Software dynamic translation is the alteration of a running program to achieve a specific objective. For example, a dynamic optimizer uses software dynamic translation to modify a running program with the objective of making the program run faster. In addition to its demonstrated utility in dynamic optimizers, software dynamic translation also shows promise for producing applications that are a...
متن کامل